﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////


#pragma once
#include "GnufValueInputGroup.h"
#include "GnufIValueInputSetObserver.h"

namespace gnuf {

    class GNUF_BASE_EXPORT ValueInputSet : public ValueInputGroup
    {
        DEFINE_CAST_DERIVED(gnuf::ValueInputSet, gnuf::ValueInputGroup)
    public:
        explicit ValueInputSet(IValueInputSetObserver * pObserver = nullptr);
        virtual ~ValueInputSet();

        IValueInputSetObserver * observer();
        const IValueInputSetObserver * observer() const;

    private:
        const std::wstring m_id;
        gcmp::WeakPtr<IValueInputSetObserver> m_wpObserver;
    };

}
